package com.mofum.msdom.excel.template.reader;

import com.mofum.msdom.excel.template.metadata.MPExcelTemplate;
import org.apache.poi.ss.usermodel.Workbook;

import java.io.File;
import java.io.InputStream;
import java.lang.reflect.Type;

/**
 * 注解读取模板
 *
 * @author yuyang@qxy37.com
 * @since 2019/1/25 0025 16:26
 */
public interface IAExcelTemplateReader<Callback> extends IExcelTemplateReader<Callback> {

    /**
     * 读取模板
     *
     * @param template Excel模板
     * @param types    数据类型
     * @param callback 回调函数
     */
    void read(MPExcelTemplate template, Type[] types, Callback callback);

    /**
     * 读取模板
     *
     * @param template Excel模板
     * @param types    数据类型
     * @param callback 回调函数
     */
    void read(File template, Type[] types, Callback callback);

    /**
     * 读取模板
     *
     * @param template Excel模板
     * @param types    数据类型
     * @param callback 回调函数
     */
    void read(InputStream template, Type[] types, Callback callback);

    /**
     * 读取模板
     *
     * @param template Excel模板
     * @param types    数据类型
     * @param callback 回调函数
     */
    void read(String template, Type[] types, Callback callback);

    /**
     * 读取模板
     *
     * @param template Excel模板
     * @param types    数据类型
     * @param callback 回调函数
     */
    void read(Workbook template, Type[] types, Callback callback);
}
